diff --git a/fs/yaffs2/ydirectenv.h b/fs/yaffs2/ydirectenv.h
index b555810..df0b8fb 100644
--- a/fs/yaffs2/ydirectenv.h
+++ b/fs/yaffs2/ydirectenv.h
@@ -1,7 +1,7 @@
 /*
  * YAFFS: Yet another Flash File System . A NAND-flash specific file system.
  *
- * Copyright (C) 2002-2007 Aleph One Ltd.
+ * Copyright (C) 2002-2011 Aleph One Ltd.
  *   for Toby Churchill Ltd and Brightstar Engineering
  *
  * Created by Charles Manning <charles@aleph1.co.uk>
@@ -20,73 +20,75 @@
 #ifndef __YDIRECTENV_H__
 #define __YDIRECTENV_H__
 
-/* Direct interface */
-
-#include "devextras.h"
-
-/* XXX U-BOOT XXX */
-#if 0
 #include "stdlib.h"
 #include "stdio.h"
 #include "string.h"
-#include "assert.h"
-#endif
-#include "yaffs_malloc.h"
+#include "yaffs_osglue.h"
+#include "yaffs_hweight.h"
 
-/* XXX U-BOOT XXX */
-#if 0
-#define YBUG() assert(1)
-#endif
+void yaffs_bug_fn(const char *file_name, int line_no);
+
+#define BUG() do { yaffs_bug_fn(__FILE__, __LINE__); } while (0)
+
 
 #define YCHAR char
 #define YUCHAR unsigned char
 #define _Y(x) x
-#define yaffs_strcpy(a,b)    strcpy(a,b)
-#define yaffs_strncpy(a,b,c) strncpy(a,b,c)
-#define yaffs_strncmp(a,b,c) strncmp(a,b,c)
-#define yaffs_strlen(s)	     strlen(s)
-#define yaffs_sprintf	     sprintf
-#define yaffs_toupper(a)     toupper(a)
 
-#ifdef NO_Y_INLINE
-#define Y_INLINE
+#define yaffs_strcat(a, b)	strcat(a, b)
+#define yaffs_strcpy(a, b)	strcpy(a, b)
+#define yaffs_strncpy(a, b, c)	strncpy(a, b, c)
+#define yaffs_strnlen(s, m)	strnlen(s, m)
+#ifdef CONFIG_YAFFS_CASE_INSENSITIVE
+#define yaffs_strcmp(a, b)	strcasecmp(a, b)
+#define yaffs_strncmp(a, b, c)	strncasecmp(a, b, c)
 #else
-#define Y_INLINE inline
+#define yaffs_strcmp(a, b)	strcmp(a, b)
+#define yaffs_strncmp(a, b, c)	strncmp(a, b, c)
 #endif
 
-#define YMALLOC(x) yaffs_malloc(x)
-#define YFREE(x)   free(x)
-#define YMALLOC_ALT(x) yaffs_malloc(x)
-#define YFREE_ALT(x)   free(x)
+#define hweight8(x)	yaffs_hweight8(x)
+#define hweight32(x)	yaffs_hweight32(x)
 
-#define YMALLOC_DMA(x) yaffs_malloc(x)
+void yaffs_qsort(void *aa, size_t n, size_t es,
+		int (*cmp)(const void *, const void *));
 
-#define YYIELD()  do {} while(0)
+#define sort(base, n, sz, cmp_fn, swp) yaffs_qsort(base, n, sz, cmp_fn)
 
+#define YAFFS_PATH_DIVIDERS  "/"
 
+#ifdef NO_inline
+#define inline
+#else
+#define inline __inline__
+#endif
 
-//#define YINFO(s) YPRINTF(( __FILE__ " %d %s\n",__LINE__,s))
-//#define YALERT(s) YINFO(s)
+#define kmalloc(x, flags) yaffsfs_malloc(x)
+#define kfree(x)   yaffsfs_free(x)
+#define vmalloc(x) yaffsfs_malloc(x)
+#define vfree(x) yaffsfs_free(x)
 
+#define cond_resched()  do {} while (0)
 
-#define TENDSTR "\n"
-#define TSTR(x) x
-#define TOUT(p) printf p
+#define yaffs_trace(msk, fmt, ...) do { \
+	if (yaffs_trace_mask & (msk)) \
+		printf("yaffs: " fmt "\n", ##__VA_ARGS__); \
+} while (0)
 
 
 #define YAFFS_LOSTNFOUND_NAME		"lost+found"
 #define YAFFS_LOSTNFOUND_PREFIX		"obj"
-//#define YPRINTF(x) printf x
 
 #include "yaffscfg.h"
 
 #define Y_CURRENT_TIME yaffsfs_CurrentTime()
 #define Y_TIME_CONVERT(x) x
 
-#define YAFFS_ROOT_MODE				0666
+#define YAFFS_ROOT_MODE			0666
 #define YAFFS_LOSTNFOUND_MODE		0666
 
-#define yaffs_SumCompare(x,y) ((x) == (y))
-#define yaffs_strcmp(a,b) strcmp(a,b)
+#include "yaffs_list.h"
+
+#include "yaffsfs.h"
 
 #endif
